package com.leetcode.August;

import com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ;

/**
 * @Description: 198. 打家劫舍
 * @Author: Mr.Fxy
 * @CreateTime: 2024-09-17 22:00
 */
public class LC198打家劫舍 {
    public int rob(int[] nums) {
        if (nums.length == 0 || nums == null) return 0;
        if (nums.length == 1) return nums[0];
        if (nums.length == 2) return Math.max(nums[0], nums[1]);
        int[] dp = new int[nums.length];
        //辅助数组 dp，其中 dp[i] 表示偷窃前 i+1 个房屋时能获得的最大金额。
        dp[0] = nums[0];
        dp[1] = Math.max(nums[0], nums[1]);
        for (int i = 2; i < nums.length; i++) {
            dp[i] = Math.max(dp[i - 1], dp[i - 2] + nums[i]);
        }
        return dp[nums.length-1];
    }
}
